// pipeline块作为jenkinsfile的根节点
pipeline {
    // 指定使用的节点名称为web2
    agent {
        label 'node1'
    }

//    agent any
    tools {
        git 'Default'
    }
    // 通过stages包括多个stage
    stages {
        stage('Build') {//通过stage定义一个任务，这个任务我们取名叫做”Build“，即代表构建阶段要执行的步骤
            steps {
                // Get some code from a GitHub repository
                git branch:'master',url:'https://gitee.com/shi_lin_bo/spring-petclinic.git'
                //-Dmaven.test.skip=true 跳过测试步骤  -Dmaven.test.failure.ignore=true 设置为失败忽略
                sh "mvn -Dcheckstyle.skip=true -Dmaven.test.failure.ignore=true  -Dmaven.test.skip=true package"
            }
            post {
                // If Maven was able to run the tests,even if some of the test
                // failed，record the test  results and archive the jar file.
                success {
                   archiveArtifacts 'target/*.jar'
                }
            }
        }
        stage('Tests') {// 定义测试阶段
            parallel {
                stage('UnitTest') {//通过stage定义一个任务，这个任务我们取名叫做”Build“，即代表构建阶段要执行的步骤
                    steps {
                        sh "mvn -Dcheckstyle.skip=true -Dmaven.test.failure.ignore=true  test"

                    }
                    post {
                        // If Maven was able to run the tests,even if some of the test
                        // failed，record the test  results and archive the jar file.
                        success {
                            junit 'target/surefire-reports/TEST*.xml'
//                            archiveArtifacts 'junit.xml'
                        }
                    }

                }
                stage('StaticTesting') {//通过stage定义一个任务，这个任务我们取名叫做”Build“，即代表构建阶段要执行的步骤
                    steps {
                        sh "echo mvn:sonar"
                    }
                }

            }
        }
//        stage('release') {//通过stage定义一个任务，这个任务我们取名叫做”Build“，即代表构建阶段要执行的步骤
//            agent {
//                label 'image'
//            }
//            steps {
//                sh "echo maven publish"
////                sh 'curl -oL http://192.168.10.127:8600/job/spring-petclinic/job/master/14/artifact/target/spring-petclinic-2.7.0-SNAPSHOT.jar'
//                sh 'docker build -t petclinic:0.2 .'
//            }
//        }
    }
}



















